home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / StdEnv / _SystemEnum.icl < prev    next >
Encoding:
Modula Implementation  |  1996-12-23  |  1.1 KB  |  48 lines  |  [TEXT/3PRM]

  1. implementation module _SystemEnum
  2.  
  3. // ****************************************************************************************
  4. //    Concurrent Clean Standard Library Module Version 1.1
  5. //    Copyright 1995 University of Nijmegen
  6. // ****************************************************************************************
  7.  
  8.  
  9. import    StdEnv
  10.  
  11. _lteq a b    :== not (b < a)
  12. _minus a b    :== a - b
  13.  
  14. _from :: a -> [a] | IncDec, Ord a
  15. _from n
  16.     = [n : _from (inc n)]
  17.  
  18. _from_to :: !a !a -> [a] | Enum a
  19. _from_to n e
  20.     | n <= e
  21.         = [n : _from_to (inc n) e]
  22.         = []
  23.  
  24. _from_then :: a a -> [a] | Enum a
  25. _from_then n1 n2
  26.     = [n1 : _from_by n2 (n2-n1)]
  27. where
  28.     _from_by :: a a -> [a] | Enum a
  29.     _from_by n s
  30.         = [n : _from_by (n+s) s]
  31.  
  32. _from_then_to :: !a !a !a -> [a] | Enum a
  33. _from_then_to n1 n2 e
  34.     | n1 <= n2
  35.         = _from_by_to n1 (n2-n1) e
  36.         = _from_by_down_to n1 (n2-n1) e
  37. where
  38.     _from_by_to :: !a !a !a -> [a] | Enum a
  39.     _from_by_to n s e
  40.         | n<=e
  41.             = [n : _from_by_to (n+s) s e]
  42.             = []
  43.     _from_by_down_to :: !a !a !a -> [a] | Enum a
  44.     _from_by_down_to n s e
  45.         | n>=e
  46.             = [n : _from_by_down_to (n+s) s e]
  47.             = []
  48.